package com.ska.skautils;

import android.util.Log;

import java.util.Arrays;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class StringUtils {
    /**
     * 不全为数字 不全为 字母 8-20位 任意字符的密码
     * @param password 密码
     * @return
     */
    public static boolean passwordRegular(String password){
        Log.e("isPassWordOne",password);//[0-9A-Za-z_~!@#$%^&*]
        String regex="^(?![0-9]+$)(?![a-zA-Z]+$).{8,20}$";
        Pattern p=Pattern.compile(regex);
        Matcher m=p.matcher(password);
        boolean isMatch=m.matches();       
        Log.e("isPassWordOne", "isPassword: 是否密码正则匹配"+isMatch);
        return isMatch;
    }

    /**
     * 不以数字开头 不全为数字 不全为 字母 8-20位  字母+数字+允许指定（_~!@#$%^&*）字符格式
     * @param password 密码
     * @return
     */
    public static boolean passwordRegular2(String password){
        Log.e("isPassWordOne",password);//[0-9A-Za-z_~!@#$%^&*]
        String regex="^(?![0-9])(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z_~!@#$%^&*]{8,20}$";
        Pattern p=Pattern.compile(regex);
        Matcher m=p.matcher(password);
        boolean isMatch=m.matches();
        Log.e("isPassWordOne", "isPassword: 是否密码正则匹配"+isMatch);
        return isMatch;
    }
    /**
     * 判断str1中包含str2的个数
     * @param str1
     * @param str2
     * @return counter
     */
   private static int counter=0;
    public  static int countStr(String str1, String str2) {
       return countStr2(true,str1,str2);
    }
    public  static int countStr2(boolean isFirst,String str1, String str2) {
        if(isFirst){
            counter=0;
        }
        if (str1.indexOf(str2) == -1) {
            return 0;
        } else if (str1.indexOf(str2) != -1) {
            counter++;
            countStr2(false,str1.substring(str1.indexOf(str2) +
                    str2.length()), str2);
            return counter;
        }
        return 0;
    }

    public static String[] listToStringArray(List<String> list){
        if(list==null){
            return null;
        }
        else {
            return   list.toArray(new String[list.size()]);
        }
    }
    public static List stringArrayToList(String[] array){
        if(array==null){
            return null;
        }
        else {
            return  Arrays.asList(array);
        }
    }
}
